<?php

/**
 * 后台角色表
 */

namespace app\admin\model;


class Role extends BaseModel
{
    // 定义一个通用的访问器来获取属性值
    protected $attributes = [
        'status' => [
            0 => '开启',
            1 => '禁用'
        ],
        'order_range' => [
            1 => '仅可见自己作为负责人或者协作人的订单',
            8 => '可见所有订单',
        ]
    ];

    public function getAttr($name)
    {
        // 检查是否是要处理的特殊属性
        if (strpos($name, '_value') !== false) {
            $originalField = str_replace('_value', '', $name);
            if (isset($this->attributes[$originalField])) {
                $value = $this->getData($originalField);
                return $this->attributes[$originalField][$value] ?? '未知';
            }
        }

        // 如果不是特殊属性，调用父类的方法
        return parent::getAttr($name);
    }


    public function getFieldEnum($field)
    {
        return $this->getEnum(strtoupper($field), [], 'label');
    }

    // 定义关联方法
    public function creator()
    {
        // 假设'creator'是外键字段，'id'是Customer模型的主键
        return $this->belongsTo('Customer', 'creator', 'id');
    }

    public function updater()
    {
        // 假设'updater'是外键字段，'id'是Customer模型的主键
        return $this->belongsTo('Customer', 'updater', 'id');
    }
}
